home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 6647 / 6647.xpi / chrome / httpfox.jar / content / XMLPrettyPrint.xsl < prev   
Extensible Markup Language  |  2009-04-04  |  6KB  |  174 lines

  1. <?xml version="1.0"?>
  2. <!-- ***** BEGIN LICENSE BLOCK *****
  3.    - Version: MPL 1.1/GPL 2.0/LGPL 2.1
  4.    -
  5.    - The contents of this file are subject to the Mozilla Public License Version
  6.    - 1.1 (the "License"); you may not use this file except in compliance with
  7.    - the License. You may obtain a copy of the License at
  8.    - http://www.mozilla.org/MPL/
  9.    -
  10.    - Software distributed under the License is distributed on an "AS IS" basis,
  11.    - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  12.    - for the specific language governing rights and limitations under the
  13.    - License.
  14.    -
  15.    - The Original Code is mozilla.org code.
  16.    -
  17.    - The Initial Developer of the Original Code is
  18.    - Netscape Communications Corporation.
  19.    - Portions created by the Initial Developer are Copyright (C) 2002
  20.    - the Initial Developer. All Rights Reserved.
  21.    -
  22.    - Contributor(s):
  23.    -   Jonas Sicking <sicking@bigfoot.com> (Original author)
  24.    -
  25.    - Alternatively, the contents of this file may be used under the terms of
  26.    - either the GNU General Public License Version 2 or later (the "GPL"), or
  27.    - the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  28.    - in which case the provisions of the GPL or the LGPL are applicable instead
  29.    - of those above. If you wish to allow use of your version of this file only
  30.    - under the terms of either the GPL or the LGPL, and not to allow others to
  31.    - use your version of this file under the terms of the MPL, indicate your
  32.    - decision by deleting the provisions above and replace them with the notice
  33.    - and other provisions required by the LGPL or the GPL. If you do not delete
  34.    - the provisions above, a recipient may use your version of this file under
  35.    - the terms of any one of the MPL, the GPL or the LGPL.
  36.    -
  37.    - ***** END LICENSE BLOCK ***** -->
  38.  
  39. <!DOCTYPE overlay SYSTEM "chrome://global/locale/xml/prettyprint.dtd">
  40.  
  41. <xsl:stylesheet version="1.0"
  42.                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  43.                 xmlns="http://www.w3.org/1999/xhtml">
  44.  
  45.   <xsl:output method="xml"/>
  46.  
  47.   <xsl:template match="/">
  48.     <link href="chrome://httpfox/content/XMLPrettyPrint.css" type="text/css" rel="stylesheet"/>
  49.     <link title="Monospace" href="chrome://global/content/xml/XMLMonoPrint.css" type="text/css" rel="alternate stylesheet"/>
  50.     <script>
  51.         function x(e) 
  52.         {
  53.             if (e.parentNode.className != 'expander-closed') 
  54.             {
  55.                 e.parentNode.className = 'expander-closed';
  56.                 e.className = 'expander-display-closed';
  57.             }
  58.             else 
  59.             {
  60.                 e.parentNode.className = '';
  61.                 e.className = 'expander-display-open';
  62.             }
  63.         }
  64.     </script>
  65.     <xsl:apply-templates/>
  66.   </xsl:template>
  67.  
  68.   <xsl:template match="*">
  69.     <div class="indent">
  70.       <span class="markup"><</span>
  71.       <span class="start-tag"><xsl:value-of select="name(.)"/></span>
  72.       <xsl:apply-templates select="@*"/>
  73.       <span class="markup">/></span>
  74.     </div>
  75.   </xsl:template>
  76.  
  77.   <xsl:template match="*[node()]">
  78.     <div class="indent">
  79.       <span class="markup"><</span>
  80.       <span class="start-tag"><xsl:value-of select="name(.)"/></span>
  81.       <xsl:apply-templates select="@*"/>
  82.       <span class="markup">></span>
  83.  
  84.       <span class="text"><xsl:value-of select="."/></span>
  85.  
  86.       <span class="markup"></</span>
  87.       <span class="end-tag"><xsl:value-of select="name(.)"/></span>
  88.       <span class="markup">></span>
  89.     </div>
  90.   </xsl:template>
  91.  
  92.   <xsl:template match="*[* or processing-instruction() or comment() or string-length(.) > 50]">
  93.     <table>
  94.       <tr>
  95.         <xsl:call-template name="expander"/>
  96.         <td>
  97.           <span class="markup"><</span>
  98.           <span class="start-tag"><xsl:value-of select="name(.)"/></span>
  99.           <xsl:apply-templates select="@*"/>
  100.           <span class="markup">></span>
  101.  
  102.           <div class="expander-content"><xsl:apply-templates/></div>
  103.  
  104.           <span class="markup"></</span>
  105.           <span class="end-tag"><xsl:value-of select="name(.)"/></span>
  106.           <span class="markup">></span>
  107.         </td>
  108.       </tr>
  109.     </table>
  110.   </xsl:template>
  111.  
  112.   <xsl:template match="@*">
  113.     <xsl:text> </xsl:text>
  114.     <span class="attribute-name"><xsl:value-of select="name(.)"/></span>
  115.     <span class="markup">=</span>
  116.     <span class="attribute-value">"<xsl:value-of select="."/>"</span>
  117.   </xsl:template>
  118.  
  119.   <xsl:template match="text()">
  120.     <xsl:if test="normalize-space(.)">
  121.       <div class="indent text"><xsl:value-of select="."/></div>
  122.     </xsl:if>
  123.   </xsl:template>
  124.  
  125.   <xsl:template match="processing-instruction()">
  126.     <div class="indent pi">
  127.       <xsl:text><?</xsl:text>
  128.       <xsl:value-of select="name(.)"/>
  129.       <xsl:text> </xsl:text>
  130.       <xsl:value-of select="."/>
  131.       <xsl:text>?></xsl:text>
  132.     </div>
  133.   </xsl:template>
  134.  
  135.   <xsl:template match="processing-instruction()[string-length(.) > 50]">
  136.     <table>
  137.       <tr>
  138.         <xsl:call-template name="expander"/>
  139.         <td class="pi">
  140.           <?<xsl:value-of select="name(.)"/>
  141.           <div class="indent expander-content"><xsl:value-of select="."/></div>
  142.           <xsl:text>?></xsl:text>
  143.         </td>
  144.       </tr>
  145.     </table>
  146.   </xsl:template>
  147.  
  148.   <xsl:template match="comment()">
  149.     <div class="comment indent">
  150.       <xsl:text><!--</xsl:text>
  151.       <xsl:value-of select="."/>
  152.       <xsl:text>--></xsl:text>
  153.     </div>
  154.   </xsl:template>
  155.  
  156.   <xsl:template match="comment()[string-length(.) > 50]">
  157.     <table>
  158.       <tr>
  159.         <xsl:call-template name="expander"/>
  160.         <td class="comment">
  161.           <xsl:text><!--</xsl:text>
  162.           <div class="indent expander-content"><xsl:value-of select="."/></div>
  163.           <xsl:text>--></xsl:text>
  164.         </td>
  165.       </tr>
  166.     </table>
  167.   </xsl:template>
  168.   
  169.   <xsl:template name="expander">
  170.     <div class="expander-display-open" onclick="x(this);"><div class="spacer"></div></div>
  171.   </xsl:template>
  172.  
  173. </xsl:stylesheet>
  174.